/**
 * 服务注册中心
 * 
 * 统一管理所有服务的注册
 * 
 * @author AI Assistant
 * @date 2025-11-27
 */

import { container, Services } from './ServiceContainer';
import { SceneCoordinator } from '../../scripts/coordinator/SceneCoordinator';
// import { GameApplication } from '../../scripts/GameApplication';
// import { WorldSystem } from '../../scripts/ecs/worldSystem';
// ... 其他服务

/**
 * 注册所有服务
 * 
 * 在游戏启动时调用一次
 */
export function registerServices(): void {
    // 场景协调器
    container.registerSingleton(
        Services.SceneCoordinator,
        () => SceneCoordinator.getInstance()
    );
    
    // 游戏应用
    // container.registerSingleton(
    //     Services.GameApplication,
    //     () => GameApplication.getInstance()
    // );
    
    // ECS 世界系统
    // container.registerSingleton(
    //     Services.WorldSystem,
    //     () => new WorldSystem()
    // );
    
    // 固定更新管理器
    // container.registerSingleton(
    //     Services.FixedUpdateManager,
    //     () => FixedUpdateManager.getInstance()
    // );
    
    // 命令队列
    // container.registerSingleton(
    //     Services.CommandQueue,
    //     () => CommandQueue.getInstance()
    // );
    
    console.log('[ServiceRegistry] 服务注册完成');
}

/**
 * 便捷访问器
 */
export const serviceLocator = {
    get sceneCoordinator(): SceneCoordinator {
        return container.resolve<SceneCoordinator>(Services.SceneCoordinator);
    },
    
    // get gameApp(): GameApplication {
    //     return container.resolve<GameApplication>(Services.GameApplication);
    // },
    
    // get worldSystem(): WorldSystem {
    //     return container.resolve<WorldSystem>(Services.WorldSystem);
    // },
};

